{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "width = 6\n",
    "height = 3\n",
    "import matplotlib\n",
    "matplotlib.rcParams['figure.figsize'] = [width, height]\n",
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import hmmlearn\n",
    "\n",
    "from hmmlearn.hmm import GaussianHMM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.24.1\n",
      "1.14.6\n",
      "0.2.2\n"
     ]
    }
   ],
   "source": [
    "print(pd.__version__)\n",
    "print(np.__version__)\n",
    "print(hmmlearn.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Look at the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "nile = pd.read_csv(\"Nile.csv\", index_col = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>val</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1871</td>\n",
       "      <td>1120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1872</td>\n",
       "      <td>1160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1873</td>\n",
       "      <td>963</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1874</td>\n",
       "      <td>1210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1875</td>\n",
       "      <td>1160</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year   val\n",
       "1  1871  1120\n",
       "2  1872  1160\n",
       "3  1873   963\n",
       "4  1874  1210\n",
       "5  1875  1160"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nile.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fc3b30a43c8>]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(nile.year, nile.val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Let's take a look at the hmmlearn API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "vals = np.expand_dims(nile.val.values, 1)\n",
    "n_states = 2\n",
    "model = GaussianHMM(n_components=n_states, n_iter=100).fit(vals)\n",
    "hidden_states = model.predict(vals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([72, 28])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.bincount(hidden_states)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fc3af7b1748>]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(hidden_states)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: how can we package this more conveniently?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: how might we be able to plot this more sensibly?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: can we improve on the analysis above?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cut off the 'special' region"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Change the input parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: generate new synthetic data from the model and then fit it with a fresh HMM model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Easy to sample from an existing HMM model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Then refit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
